import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    tasklist:[],//任务列表 , [{ id: 1 , name:'李清照' , status:false },...]
  },
  getters: { //定义计算方法( 类似于组件中的计算属性 )
    //计算方法的参数一: 数据仓库对象中的state
    unFinishCount( state ){//统计未完成任务的数量
      var arr = state.tasklist.filter((item)=>{
          return item.status == false;
      })
      return arr.length;
    }
  },
  mutations: {
    addTask( state, payload ){
      //构建一个新的任务对象,status属性表示任务的状态(true 已完成; false 未完成)
      var obj = { id: state.tasklist.length+1 , name: payload , status:false };
      state.tasklist.push(obj);//添加到任务列表中
    },
    changeStatus( state, payload ){
      //查找需要修改状态的那个任务对象
      var fi = state.tasklist.find((item)=>{
        return item.id == payload.id;
      });

      if( fi ){ //判断是否找到
        fi.status = !fi.status;
      }
    },
    deleteTask(state){
      state.tasklist.splice(state,1);
  }
  },
  actions: {
  },
  modules: {
  }
})
